package com.gbb.common.utils;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.telephony.TelephonyManager;
import android.widget.Toast;

/**
 * 电话工具类
 * 
 * @author : 桥下一粒砂
 * @email chenyoca@gmail.com
 * @date : 2012-7-21
 */
public class PhoneUtil {
	
	/**
	 * 直接拨打电话
	 * 
	 * @param mContext 上下文
	 * @param phoneNumber 电话号码
	 */
	public static void makeCall(Context mContext, String phoneNumber) {
		Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse(String.format("tel:%s", phoneNumber)));
		try {
			mContext.startActivity(dialIntent);
		} catch (Exception e) {
			Toast.makeText(mContext, "无法拨打电话！可能本应用拨打电话的权限被安全软件禁用，请您检查后重试。", Toast.LENGTH_LONG).show();
		}
	}
	
	/**
	 * 直接发送信息
	 * 
	 * @param mContext 上下文
	 * @param receive 接收方号码
	 * @param content 信息内容
	 */
	public static void sms(Context mContext, String receive, String content) {
		Intent sendIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms://"));
		sendIntent.putExtra("address", receive);
		sendIntent.putExtra("sms_body", content);
		try {
			mContext.startActivity(sendIntent);
		} catch (Exception e) {
			Toast.makeText(mContext, "无法发送！可能本应用拨打电话的权限被安全软件禁用，请您检查后重试。", Toast.LENGTH_SHORT).show();
		}
	}
	
	/**
	 * 调用系统短信发送界面并预设接收号码、短信内容。
	 * 
	 * @param mContext 上下文
	 * @param receive 接收方号码
	 * @param content 预设内容
	 */
	public static void preSMS(Context mContext, String receive, String content) {
		Uri smsToUri = Uri.parse(String.format("smsto:%s", receive));
		Intent intent = new Intent(android.content.Intent.ACTION_SENDTO, smsToUri);
		intent.putExtra("sms_body", content);
		mContext.startActivity(intent);
	}
	
	/**
	 * 发送到
	 * 
	 * @param mContext 上下文
	 * @param subject 主题
	 * @param content 内容
	 * @param receivers 接收者，可以多个
	 */
	public static void mailTo(Context mContext, String subject, String content, String... receivers) {
		Intent emailIntent = new Intent(Intent.ACTION_SEND);
		emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
		emailIntent.putExtra(Intent.EXTRA_TEXT, content);
		emailIntent.putExtra(Intent.EXTRA_EMAIL, receivers);
		emailIntent.setType("message/rfc822");
		mContext.startActivity(emailIntent);
	}
	
	/**
	 * 获取手机号码
	 * 
	 * @param context Context
	 * @return 手机号码
	 */
	public static String getPhoneNum(Context context) {
		TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
		return tm.getLine1Number();
	}
	
}
